home *** CD-ROM | disk | FTP | other *** search
/ The PC-SIG Library 9 / The PC-SIG Library on CD ROM - Ninth Edition.iso / 001_100 / DISK0093 / DISK0093.ZIP / TANK.BAS < prev    next >
BASIC Source File  |  1983-09-18  |  8KB  |  171 lines

  1. 10 KEY OFF:CLS
  2. 20 SCREEN 0
  3. 30 WIDTH 40
  4. 40 PRINT"░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░"
  5. 50 PRINT"░┌───────────────────────────────────┐░"
  6. 60 PRINT"░│                                   │░"
  7. 70 PRINT"░│            2077-A.BAS             │░"
  8. 80 PRINT"░│              TANK                 │░"
  9. 90 PRINT"░│                                   │░"
  10. 100 PRINT"░│                                   │░"
  11. 110 PRINT"░│ BROUGHT TO YOU BY THE MEMBERS OF  │░"
  12. 120 PRINT"░│      ▄▄▄▄▄ ▄▄▄▄▄ ▄▄▄▄▄ ▄▄▄▄▄      │░"
  13. 130 PRINT"░│        █   █   █ █     █   █      │░"
  14. 140 PRINT"░│        █   █▄▄▄█ █     █   █      │░"
  15. 150 PRINT"░│        █   █     █     █   █      │░"
  16. 160 PRINT"░│      ▄▄█▄▄ █     █▄▄▄▄ █▄▄▄█      │░"
  17. 170 PRINT"░│                                   │░"
  18. 180 PRINT"░│      International PC Owners      │░"
  19. 190 PRINT"░│                                   │░"
  20. 200 PRINT"░│P.O. Box 10426, Pittsburgh PA 15234│░"
  21. 210 PRINT"░│                                   │░"
  22. 220 PRINT"░└───────────────────────────────────┘░"
  23. 230 PRINT"░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░"
  24. 240 PRINT
  25. 250 PRINT "       PRESS ANY KEY TO CONTINUE
  26. 260 A$=INKEY$: IF A$="" THEN 260
  27. 270 WIDTH 80
  28. 280 CLS
  29. 1000 '<====={ TANK }=====>
  30. 1010 'Danny Y. Toronot User Group + JULIAN M.
  31. 1020 CLEAR:SOU=0:KEY OFF:RB$=CHR$(248):LB$=CHR$(42)
  32. 1030 GOSUB 2000:GOSUB 2150:GOSUB 1450:SP$=CHR$(32):RP$=CHR$(232):LP$=CHR$(233)
  33. 1040 A=20:B=77:E=3:F=3:D=0:G=0:H=0:I=0:K=0:Q=0:R=0:S=5:T=0:W=5:U=0:GOSUB 1990
  34. 1050 LOCATE 22,26:COLOR 0,7:PRINT"TO END GAME PRESS THE ESC BUTTON":COLOR 7,0
  35. 1060 LOCATE 1,38:COLOR 0,7:PRINT"TANK!":COLOR 7,0:EX$=CHR$(8)
  36. 1070 IF SOU=0 THEN LOCATE 1,65:COLOR 0,7:PRINT"SOUND ON "
  37. 1080 IF SOU=2 THEN LOCATE 1,65:COLOR 0,7:PRINT"SOUND OFF"
  38. 1090 COLOR 7,0
  39. 1100 C$=INKEY$
  40. 1110 IF C$="I"OR C$="i"THEN GOSUB 2280:GOTO 1070
  41. 1120 IF C$="O"OR C$="o"THEN SOU=2:GOTO 1070
  42. 1130 IF C$="P"OR C$="p"THEN SOU=0:GOTO 1070
  43. 1140 IF C$=CHR$(27)THEN 2030
  44. 1150 IF C$="M"OR C$="K"OR C$="L"THEN 1100
  45. 1160 IF RIGHT$(C$,1)="H"OR C$="8"THEN X$="I":GOSUB 1280
  46. 1170 IF C$="W"OR C$="w"THEN X$="W":GOSUB 1360
  47. 1180 IF RIGHT$(C$,1)="P"OR C$="2"THEN X$="M":GOSUB 1320
  48. 1190 IF C$="X"OR C$="x"THEN X$="X":GOSUB 1400
  49. 1200 IF RIGHT$(C$,1)="M"OR C$="6"THEN X$="L":GOSUB 1340
  50. 1210 IF C$="D"OR C$="d"THEN X$="D":GOSUB 1420
  51. 1220 IF RIGHT$(C$,1)="K"OR C$="4"THEN X$="J":GOSUB 1300
  52. 1230 IF C$="A"OR C$="a"THEN X$="A":GOSUB 1380
  53. 1240 IF RIGHT$(C$,1)="R"OR C$="0"OR C$="5"THEN GOSUB 1470
  54. 1250 IF C$="S"OR C$="s"THEN GOSUB 1600
  55. 1260 LOCATE A,B:PRINT RP$
  56. 1270 LOCATE E,F:PRINT LP$:GOTO 1100
  57. 1280 IF A-1<2 THEN  RETURN
  58. 1290 LOCATE A,B:PRINT SP$:A=A-1:RETURN
  59. 1300 IF B-1<2 THEN RETURN
  60. 1310 LOCATE A,B:PRINT SP$:B=B-1:RETURN
  61. 1320 IF A+1>21 THEN RETURN
  62. 1330 LOCATE A,B:PRINT SP$:A=A+1:RETURN
  63. 1340 IF B+1>79 THEN RETURN
  64. 1350 LOCATE A,B:PRINT SP$:B=B+1:RETURN
  65. 1360 IF E-1<2 THEN RETURN
  66. 1370 LOCATE E,F:PRINT SP$:E=E-1:RETURN
  67. 1380 IF F-1<2 THEN RETURN
  68. 1390 LOCATE E,F:PRINT SP$:F=F-1:RETURN
  69. 1400 IF E+1>21 THEN RETURN
  70. 1410 LOCATE E,F:PRINT SP$:E=E+1:RETURN
  71. 1420 IF F+1>79 THEN RETURN
  72. 1430 LOCATE E,F:PRINT SP$:F=F+1:RETURN
  73. 1440 RETURN
  74. 1450 GOSUB 2000:LOCATE 22,10
  75. 1460 COLOR 0,7:PRINT"TANKS":LOCATE 22,68:PRINT"TANKS":COLOR 7,0:RETURN
  76. 1470 G=A:U=B:IF X$="I"THEN 1520
  77. 1480 IF X$="M"THEN 1540
  78. 1490 IF X$="L"THEN 1560
  79. 1500 IF X$="J"THEN 1580
  80. 1510 LOCATE G,B:PRINT SP$:LOCATE A,U:PRINT SP$:GOSUB 2240:RETURN
  81. 1520 LOCATE A,B:PRINT RP$:LOCATE G,B:PRINT SP$:G=G-1:LOCATE G,B:COLOR 15,0:PRINT RB$:COLOR 7,0:GOSUB 1730:IF G<3 THEN 1510
  82. 1530 GOTO 1520
  83. 1540 LOCATE A,B:PRINT RP$:LOCATE G,B:PRINT SP$: G=G+1:LOCATE G,B:COLOR 15,0:PRINT RB$:COLOR 7,0:GOSUB 1730:IF G>20 THEN 1510
  84. 1550 GOTO 1540
  85. 1560 LOCATE A,B:PRINT RP$:LOCATE A,U:PRINT SP$:U=U+1:LOCATE A,U:COLOR 15,0:PRINT RB$:COLOR 7,0:GOSUB 1730:IF U>78 THEN 1510
  86. 1570 GOTO 1560
  87. 1580 LOCATE A,B:PRINT RP$:LOCATE A,U:COLOR 15,0:PRINT SP$:U=U-1:LOCATE A,U:COLOR 15,0:PRINT RB$:COLOR 7,0:GOSUB 1730:IF U<3 THEN 1510
  88. 1590 GOTO 1580
  89. 1600 G=E:U=F:IF X$="W"THEN 1650
  90. 1610 IF X$="X"THEN 1670
  91. 1620 IF X$="D"THEN 1690
  92. 1630 IF X$="A"THEN 1710
  93. 1640 LOCATE G,F:PRINT SP$:LOCATE E,U:PRINT SP$:GOSUB 2240:RETURN
  94. 1650 LOCATE E,F:PRINT LP$:LOCATE G,F:PRINT SP$:G=G-1:LOCATE G,F:COLOR 15,0:PRINT LB$:COLOR 7,0:GOSUB 1860:IF G<3 THEN 1640
  95. 1660 GOTO 1650
  96. 1670 LOCATE E,F:PRINT LP$:LOCATE G,F:PRINT SP$:G=G+1:LOCATE G,F:COLOR 15,0:PRINT LB$:COLOR 7,0:GOSUB 1860:IF G>20 THEN 1640
  97. 1680 GOTO 1670
  98. 1690 LOCATE E,F:PRINT LP$:LOCATE E,U:PRINT SP$:U=U+1:LOCATE E,U:COLOR 15,0:PRINT LB$:COLOR 7,0:GOSUB 1860:IF U>78 THEN 1640
  99. 1700 GOTO 1690
  100. 1710 LOCATE E,F:PRINT LP$:LOCATE E,U:PRINT SP$:U=U-1:LOCATE E,U:COLOR 15,0:PRINT LB$:COLOR 7,0:GOSUB 1860:IF U<3  THEN 1640
  101. 1720 GOTO 1710:'REM ROUTINE TO SCORE AND SOUND
  102. 1730 IF G=E THEN 1750
  103. 1740 GOTO 1760
  104. 1750 IF U=F THEN 1770
  105. 1760 RETURN
  106. 1770 FOR J=1 TO 25:LOCATE E,F:PRINT EX$:LOCATE E,F:COLOR 0,7:PRINT EX$:COLOR 7,0
  107. 1780 IF SOU=2 THEN 1820
  108. 1790 COLOR 7,0:SOUND 440,.4
  109. 1800 SOUND 230.81,.4
  110. 1810 SOUND 780 ,.4
  111. 1820 NEXT J
  112. 1830 W=W-1
  113. 1840 IF W<1 THEN WI=2:GOTO 2030
  114. 1850 GOSUB 1990:GOTO 1100
  115. 1860 IF G=A THEN 1880
  116. 1870 GOTO 1890
  117. 1880 IF U=B THEN 1900
  118. 1890 RETURN
  119. 1900 FOR J=1 TO 25:LOCATE A,B:PRINT EX$:LOCATE A,B:COLOR 0,7:PRINT EX$:COLOR 7,0
  120. 1910 IF SOU=2 THEN 1950
  121. 1920 SOUND 440,.4
  122. 1930 SOUND 230.81,.4
  123. 1940 SOUND 780 ,.4
  124. 1950 NEXT J
  125. 1960 S=S-1
  126. 1970 IF S<1 THEN WI=1:GOTO 2030
  127. 1980 GOSUB 1990:GOTO 1100
  128. 1990 LOCATE 23,11:PRINT LP$;W:LOCATE 23,69:PRINT RP$;S:RETURN
  129. 2000 CLS:LL$=CHR$(0):LM$=CHR$(0):LL$=CHR$(219):FOR CA=1 TO 79'BOARDER
  130. 2010 LM$=LM$+LL$:NEXT:LOCATE 1,1:PRINT LM$:LOCATE 22,1:PRINT LM$:FOR CA=1 TO 22
  131. 2020 LOCATE CA,1:PRINT LL$:LOCATE CA,80:PRINT LL$:NEXT:CA=0:RETURN
  132. 2030 GOSUB 2000:'TO END GAME
  133. 2040 LOCATE 9,37:COLOR 1,0:PRINT" TANK !":COLOR 7,0
  134. 2050 COLOR 7,0:LOCATE 14,32:IF WI=1 THEN CH=233:GOTO 2080
  135. 2060 IF WI=2 THEN CH=232:GOTO 2080
  136. 2070 GOTO 2090
  137. 2080 COLOR 19,0:PRINT CHR$(CH)" IS THE WINNER!!!!":COLOR 7,0
  138. 2090 LOCATE 18,26:PRINT"DO YOU WISH TO PLAY AGAIN (Y/N) ";
  139. 2100 C$=INPUT$(1)
  140. 2110 IF C$="Y" OR C$="y" THEN  1020
  141. 2120 IF C$="N" OR C$="n" THEN 2140
  142. 2130 BEEP:GOTO 2090
  143. 2140 CLS:LOCATE 11,35:COLOR 17,0:PRINT"SEE YA'":COLOR 7,0:LOCATE 22,1:END
  144. 2150 LOCATE 6,36:COLOR 1,0:PRINT" TANK !":COLOR 7,0
  145. 2160 LOCATE 10,13:PRINT"PRESS "CHR$(34)"I"CHR$(34)" TO LEARN THE RULES OF THE GAME DURING GAME PLAY"
  146. 2170 LOCATE 12,15:PRINT"PRESS "CHR$(34)"O"CHR$(34)" TO TURN SOUND OFF ANYTIME DURING GAME PLAY"
  147. 2180 LOCATE 14,15:PRINT"PRESS "CHR$(34)"P"CHR$(34)" TO TURN SOUND ON ANYTIME DURING GAME PLAY"
  148. 2190 LOCATE 16,24:PRINT"NUMBER OF TANKS PER PLAYER IS FIVE(5)"
  149. 2200 LOCATE 20,28:PRINT"PRESS ANY KEY TO CONTINUE":LOCATE 18,24:PRINT"TO END GAME PRESS THE ESC BUTTON"
  150. 2210 A$=INKEY$
  151. 2220 IF A$="" THEN 2210
  152. 2230 RETURN:'REM NOISE FOR MISSES
  153. 2240 IF SOU=2 THEN RETURN
  154. 2250 SOUND  250,.7
  155. 2260 SOUND  450,.9
  156. 2270 SOUND  350,.9:RETURN
  157. 2280 GOSUB 2000:LOCATE 8,36:COLOR 1,0:PRINT" TANK !"
  158. 2290 COLOR 7,0:LOCATE 12,27:PRINT" THIS IS THE GAME OF TANK.":LOCATE 13,17
  159. 2300 PRINT" THE GAME LETS TWO TANK COMMANDERS FIGHT EACH OTHER.":LOCATE 14,8
  160. 2310 PRINT"THE PLAYER ON THE LEFT USES THE W,A,X,D AND S AS THE FIRING BUTTON."
  161. 2320 LOCATE 15,7:PRINT"THE PLAYER ON THE RIGHT USES THE 8,4,2,6 AND 0 AS THE FIRING BUTTON."
  162. 2330 LOCATE 16,26:PRINT"TO TURN OFF SOUND PRESS "CHR$(34)"O"CHR$(34)"."
  163. 2340 LOCATE 17,27:PRINT"TO TURN ON SOUND PRESS "CHR$(34)"P"CHR$(34)"."
  164. 2350 LOCATE 18,29:PRINT"INSTRUCTIONS PRESS "CHR$(34)"I"CHR$(34)"."
  165. 2360 LOCATE 20,24:PRINT"PRESS ANY KEY TO RESUME THE GAME"
  166. 2370 IF INKEY$="" THEN 2370
  167. 2380 GOSUB 2000:GOSUB 1990
  168. 2390 LOCATE 22,26:COLOR 0,7:PRINT"TO END GAME PRESS THE ESC BUTTON":COLOR 7,0
  169. 2400 LOCATE 1,38:COLOR 0,7:PRINT"TANK!":COLOR 7,0:RETURN
  170. E 22,26:COLOR 0,7:PRINT"TO END GAME PRESS THE ESC BUTTON":COLOR 7,0
  171. 2400 LOCATE 1,38